[Python] Django連接現有MySQL資料庫
鼠年全馬鐵人挑戰 - WEEK 01
前言
Django預設的資料庫使用sqlite3,本篇紀錄如何從預設的sqlite3改完連接MySQL中現有的資料庫,本篇也作為今年參加鼠年全馬鐵人挑戰的開篇 XD
安裝
我是在虛擬環境下安裝,使用pipenv做套件管理。
安裝pymysql
1 | |
安裝django
1 | |
建立專案
建立名為mysite的專案名稱
1 | |
建立名為exrate的APP
1 | |
相關設定
設定__init__.py檔
至專案根目錄(mysite)下的__init__.py檔,添加下方兩行程式碼:
1 | |
設定database
至專案根目錄(mysite)下的settings.py檔,替換成下方程式碼:
1 | |
連接
連接已有的資料庫與Django app
1 | |
可能會遇到的問題: 版本問題
執行上個連接步驟的指令時,可能會遇到以下錯誤:
解決方法
上方圖片中的錯誤訊息有提示問題發生在哪個檔案,打開提示路徑下的目標檔案base.py,檔案內尋找version = Database.version_info的程式碼,會看到下方程式碼:
1 | |
上述程式碼改成
1 | |
更改後存檔,在執行一次連接MySQL資料庫的指令
1 | |
執行結果
引用inspectdb套件建立模型
第一種方法
複製執行後所看到的程式碼內容貼到建立的app專案資料夾中的models.py
第二種方法
將下方指令中的myapp替換成自己建立的app專案名稱並執行
1 | |
建立migrations資料表
myapp替換成自己建立的app專案名
1 | |
migrate同步資料表
myapp替換成自己建立的app專案名
1 | |
完成遷移!